   1              		.syntax unified
   2              		.cpu cortex-m3
   3              		.fpu softvfp
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 4
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.thumb
  14              		.syntax unified
  15              		.file	"rtc.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.section	.text.rtc_Init,"ax",%progbits
  20              		.align	1
  21              		.global	rtc_Init
  22              		.thumb
  23              		.thumb_func
  25              	rtc_Init:
  26              	.LFB0:
  27              		.file 1 "uc_libc_dev/_arch/arm_lpc/timer/rtc.c"
   1:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** /*
   2:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  *  O RTC já considera a contagem do ano bissexto e respeita o última dia de cada mes
   3:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  *  Podemos ajustar qualquer horário mesmo que seja absurdo como dia 31 do mês de fevereiro,
   4:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  *  mas o valor é corrigido pelo hardware para a próxima data válida na virada do dia
   5:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  * */
   6:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
   7:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** #include "rtc.h"
   8:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
   9:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** #if (RTC_USE_INT == pdON)
  10:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** typedef void (*void_pFunc)(void);
  11:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** static volatile void_pFunc rtc_IntFunctions[RTC_NUM_INTERRUPTS];
  12:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_ISR(void);
  13:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** #endif
  14:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  15:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  16:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Incializa o RTC, mas a contagem do tempo esta parada. Utilize o rtc_Start para inici
  17:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Nenhum
  18:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		retorna pdPASS se iniciliazou sem problemas ou retorna código de erro
  19:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  20:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** int rtc_Init(void) {
  28              		.loc 1 20 0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  32              		@ link register save eliminated.
  21:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// Ligar circuito do timer. Tem que ser antes da configuração,
  22:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	//	pois após ligar o periféricos, seus regs assumem valores padrões
  23:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	PCONP |= PCRTC;
  33              		.loc 1 23 0
  34 0000 0A4A     		ldr	r2, .L2
  24:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// RTC parado
  25:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	CCR = 0;
  26:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  27:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// SELECIONA A FONTE DE CLOCK RTC
  28:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if defined (arm7tdmi)
  29:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if (RTC_USE_CLOCK_EXTERNAL == pdON) && defined(LPC2468)
  30:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// Seleciona o oscilador externo como fonte de clock do RTC
  31:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 		CCR |= CLKSRC;
  32:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     #else
  33:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     	PREINT   = (PCLK/32768)-1;
  34:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     	PREFRAC  = PCLK - ((PREINT+1)*32768);    	
  35:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     #endif
  36:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#endif
  37:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     
  38:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     AMR = AMRMASK; // Nenhum dos integrantes do tempo é usado para comparação para o alarme
  35              		.loc 1 38 0
  36 0002 0B49     		ldr	r1, .L2+4
  23:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// RTC parado
  37              		.loc 1 23 0
  38 0004 1368     		ldr	r3, [r2]
  39              		.loc 1 38 0
  40 0006 FF20     		movs	r0, #255
  23:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	// RTC parado
  41              		.loc 1 23 0
  42 0008 43F40073 		orr	r3, r3, #512
  43 000c 1360     		str	r3, [r2]
  25:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  44              		.loc 1 25 0
  45 000e 094B     		ldr	r3, .L2+8
  46 0010 0022     		movs	r2, #0
  47 0012 1A60     		str	r2, [r3]
  48              		.loc 1 38 0
  49 0014 0860     		str	r0, [r1]
  39:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     CIIR = IMNO;	// Nenhum dos integrantes do tempo é usado para gerar a interrupção
  50              		.loc 1 39 0
  51 0016 41F8042C 		str	r2, [r1, #-4]
  40:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     ILR = (RTCCIF|RTCALF); // Limpando FLAGS de interrupção do RTC e ALARM
  52              		.loc 1 40 0
  53 001a 074A     		ldr	r2, .L2+12
  54 001c 0321     		movs	r1, #3
  55 001e 1160     		str	r1, [r2]
  41:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	
  42:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    	#if (RTC_USE_INT == pdON)
  43:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    	u8 int_num;
  44:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	for(int_num = 0; int_num < RTC_NUM_INTERRUPTS; int_num++)	// Faça para todas as interrupções do RT
  45:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 		rtc_ClearIntHandler(int_num);							// Retira todas as funções anexadas em suas respecticas inter
  46:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	
  47:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if defined (arm7tdmi)
  48:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	if (!irq_Install(VIC_RTC, rtc_ISR, RTC_PRIO_LEVEL))
  49:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    		 return errIRQ_INSTALL;
  50:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#endif
  51:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if defined (cortexm3)
  52:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if defined (cortexm3)
  53:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	nvic_enableIRQ(VIC_RTC);
  54:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	nvic_setPriority(VIC_RTC, RTC_PRIO_LEVEL);
  55:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#endif
  56:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#endif
  57:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    	#endif
  58:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  59:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    	CCR |= CLKEN; // Habilita Clock RTC
  56              		.loc 1 59 0
  57 0020 1A68     		ldr	r2, [r3]
  60:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  61:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****    	return pdPASS;
  62:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** } 
  58              		.loc 1 62 0
  59 0022 0120     		movs	r0, #1
  59:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  60              		.loc 1 59 0
  61 0024 42F00102 		orr	r2, r2, #1
  62 0028 1A60     		str	r2, [r3]
  63              		.loc 1 62 0
  64 002a 7047     		bx	lr
  65              	.L3:
  66              		.align	2
  67              	.L2:
  68 002c C4C00F40 		.word	1074774212
  69 0030 10400240 		.word	1073889296
  70 0034 08400240 		.word	1073889288
  71 0038 00400240 		.word	1073889280
  72              		.cfi_endproc
  73              	.LFE0:
  75              		.section	.text.rtc_Start,"ax",%progbits
  76              		.align	1
  77              		.global	rtc_Start
  78              		.thumb
  79              		.thumb_func
  81              	rtc_Start:
  82              	.LFB1:
  63:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  64:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  65:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Incializa contagem de tempo
  66:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Nenhum
  67:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		Nada
  68:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  69:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_Start( void ) {    
  83              		.loc 1 69 0
  84              		.cfi_startproc
  85              		@ args = 0, pretend = 0, frame = 0
  86              		@ frame_needed = 0, uses_anonymous_args = 0
  87              		@ link register save eliminated.
  70:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	CCR &= ~(CLKEN | CTCRST);
  88              		.loc 1 70 0
  89 0000 044B     		ldr	r3, .L5
  90 0002 1A68     		ldr	r2, [r3]
  91 0004 22F00302 		bic	r2, r2, #3
  92 0008 1A60     		str	r2, [r3]
  71:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     CCR |= CLKEN;
  93              		.loc 1 71 0
  94 000a 1A68     		ldr	r2, [r3]
  95 000c 42F00102 		orr	r2, r2, #1
  96 0010 1A60     		str	r2, [r3]
  97 0012 7047     		bx	lr
  98              	.L6:
  99              		.align	2
 100              	.L5:
 101 0014 08400240 		.word	1073889288
 102              		.cfi_endproc
 103              	.LFE1:
 105              		.section	.text.rtc_Stop,"ax",%progbits
 106              		.align	1
 107              		.global	rtc_Stop
 108              		.thumb
 109              		.thumb_func
 111              	rtc_Stop:
 112              	.LFB2:
  72:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
  73:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  74:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  75:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Para a contagem de tempo
  76:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Nenhum
  77:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		Nada
  78:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  79:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_Stop( void ) {
 113              		.loc 1 79 0
 114              		.cfi_startproc
 115              		@ args = 0, pretend = 0, frame = 0
 116              		@ frame_needed = 0, uses_anonymous_args = 0
 117              		@ link register save eliminated.
  80:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     CCR |= ~(CLKEN | CTCRST); 
 118              		.loc 1 80 0
 119 0000 024A     		ldr	r2, .L8
 120 0002 1368     		ldr	r3, [r2]
 121 0004 63F00303 		orn	r3, r3, #3
 122 0008 1360     		str	r3, [r2]
 123 000a 7047     		bx	lr
 124              	.L9:
 125              		.align	2
 126              	.L8:
 127 000c 08400240 		.word	1073889288
 128              		.cfi_endproc
 129              	.LFE2:
 131              		.section	.text.rtc_ResetCTC,"ax",%progbits
 132              		.align	1
 133              		.global	rtc_ResetCTC
 134              		.thumb
 135              		.thumb_func
 137              	rtc_ResetCTC:
 138              	.LFB3:
  81:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
  82:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  83:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  84:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Zera o clock
  85:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Nenhum
  86:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		Nada
  87:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
  88:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_ResetCTC( void ) {
 139              		.loc 1 88 0
 140              		.cfi_startproc
 141              		@ args = 0, pretend = 0, frame = 0
 142              		@ frame_needed = 0, uses_anonymous_args = 0
 143              		@ link register save eliminated.
  89:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     CCR |= CTCRST;
 144              		.loc 1 89 0
 145 0000 024A     		ldr	r2, .L11
 146 0002 1368     		ldr	r3, [r2]
 147 0004 43F00203 		orr	r3, r3, #2
 148 0008 1360     		str	r3, [r2]
 149 000a 7047     		bx	lr
 150              	.L12:
 151              		.align	2
 152              	.L11:
 153 000c 08400240 		.word	1073889288
 154              		.cfi_endproc
 155              	.LFE3:
 157              		.section	.text.rtc_Sleep,"ax",%progbits
 158              		.align	1
 159              		.global	rtc_Sleep
 160              		.thumb
 161              		.thumb_func
 163              	rtc_Sleep:
 164              	.LFB4:
  90:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
  91:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  92:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  93:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_Sleep(void) {
 165              		.loc 1 93 0
 166              		.cfi_startproc
 167              		@ args = 0, pretend = 0, frame = 0
 168              		@ frame_needed = 0, uses_anonymous_args = 0
 169              		@ link register save eliminated.
  94:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	CCR |= CLKEN;												// Habilita Clock RTC
 170              		.loc 1 94 0
 171 0000 064A     		ldr	r2, .L14
 172 0002 1368     		ldr	r3, [r2]
 173 0004 43F00103 		orr	r3, r3, #1
 174 0008 1360     		str	r3, [r2]
  95:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
  96:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	#if (RTC_USE_CLOCK_EXTERNAL == pdON) && defined(LPC2468)
  97:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   		CCR |= CLKSRC;											// Seleciona o oscilador externo como fonte de clock do RTC
  98:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	#endif
  99:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 100:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	PCONP &= ~PCRTC;											// Desliga o timer no controle de potencia
 175              		.loc 1 100 0
 176 000a 02F55822 		add	r2, r2, #884736
 177 000e BC32     		adds	r2, r2, #188
 178 0010 1368     		ldr	r3, [r2]
 179 0012 23F40073 		bic	r3, r3, #512
 180 0016 1360     		str	r3, [r2]
 181 0018 7047     		bx	lr
 182              	.L15:
 183 001a 00BF     		.align	2
 184              	.L14:
 185 001c 08400240 		.word	1073889288
 186              		.cfi_endproc
 187              	.LFE4:
 189              		.section	.text.rtc_Wake,"ax",%progbits
 190              		.align	1
 191              		.global	rtc_Wake
 192              		.thumb
 193              		.thumb_func
 195              	rtc_Wake:
 196              	.LFB5:
 101:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
 102:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 103:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_Wake(void) {
 197              		.loc 1 103 0
 198              		.cfi_startproc
 199              		@ args = 0, pretend = 0, frame = 0
 200              		@ frame_needed = 0, uses_anonymous_args = 0
 201              		@ link register save eliminated.
 104:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	CCR |= CLKEN;												// Habilita Clock RTC
 202              		.loc 1 104 0
 203 0000 064A     		ldr	r2, .L17
 204 0002 1368     		ldr	r3, [r2]
 205 0004 43F00103 		orr	r3, r3, #1
 206 0008 1360     		str	r3, [r2]
 105:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 106:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	#if (RTC_USE_CLOCK_EXTERNAL == pdON) && defined(LPC2468)
 107:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   		CCR |= CLKSRC;											// Seleciona o oscilador externo como fonte de clock do RTC
 108:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	#endif
 109:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 110:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	PCONP |= PCRTC;												// Ligar o timer no controle de potencia
 207              		.loc 1 110 0
 208 000a 02F55822 		add	r2, r2, #884736
 209 000e BC32     		adds	r2, r2, #188
 210 0010 1368     		ldr	r3, [r2]
 211 0012 43F40073 		orr	r3, r3, #512
 212 0016 1360     		str	r3, [r2]
 213 0018 7047     		bx	lr
 214              	.L18:
 215 001a 00BF     		.align	2
 216              	.L17:
 217 001c 08400240 		.word	1073889288
 218              		.cfi_endproc
 219              	.LFE5:
 221              		.section	.text.rtc_SetTime,"ax",%progbits
 222              		.align	1
 223              		.global	rtc_SetTime
 224              		.thumb
 225              		.thumb_func
 227              	rtc_SetTime:
 228              	.LFB6:
 111:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
 112:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 113:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
 114:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Ajusta data e hora
 115:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Time   Time structure with RTC time to be set:
 116:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //      		struct {
 117:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int sec;     	Second value - [0,59] 
 118:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //       			int min;     	Minute value - [0,59]
 119:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int hour;    	Hour value - [0,23]
 120:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int day;    	Day of the month value - [1,31]
 121:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int month;     	Month value - [1,12]
 122:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int year;    	Year value - [0,4095]
 123:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int w_day;    	Day of week value - [0,6]
 124:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        			int y_day;    	Day of year value - [1,365]
 125:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //      		} tRTC;
 126:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		Nada
 127:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
 128:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** void rtc_SetTime( tRTC *rtc ) {
 229              		.loc 1 128 0
 230              		.cfi_startproc
 231              		@ args = 0, pretend = 0, frame = 0
 232              		@ frame_needed = 0, uses_anonymous_args = 0
 233              		@ link register save eliminated.
 234              	.LVL0:
 129:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	ENTER_CRITICAL();			// Procedimento de entrada critica quando usado sistema operacional
 130:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 131:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	CCR &= ~CLKEN; 				// Desabilita o clock do RTC
 235              		.loc 1 131 0
 236 0000 0C4B     		ldr	r3, .L20
 237 0002 1A68     		ldr	r2, [r3]
 238 0004 22F00102 		bic	r2, r2, #1
 239 0008 1A60     		str	r2, [r3]
 132:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 133:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     SEC 	= rtc->sec;
 240              		.loc 1 133 0
 241 000a C179     		ldrb	r1, [r0, #7]	@ zero_extendqisi2
 242 000c 0A4A     		ldr	r2, .L20+4
 243 000e 1160     		str	r1, [r2]
 134:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     MIN 	= rtc->min;
 244              		.loc 1 134 0
 245 0010 8179     		ldrb	r1, [r0, #6]	@ zero_extendqisi2
 246 0012 5160     		str	r1, [r2, #4]
 135:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     HOUR 	= rtc->hour;
 247              		.loc 1 135 0
 248 0014 4179     		ldrb	r1, [r0, #5]	@ zero_extendqisi2
 249 0016 9160     		str	r1, [r2, #8]
 136:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     DOW 	= rtc->wday;
 250              		.loc 1 136 0
 251 0018 0179     		ldrb	r1, [r0, #4]	@ zero_extendqisi2
 252 001a 1161     		str	r1, [r2, #16]
 137:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     DOM 	= rtc->mday;
 253              		.loc 1 137 0
 254 001c C178     		ldrb	r1, [r0, #3]	@ zero_extendqisi2
 255 001e D160     		str	r1, [r2, #12]
 138:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     MONTH 	= rtc->month;
 256              		.loc 1 138 0
 257 0020 8178     		ldrb	r1, [r0, #2]	@ zero_extendqisi2
 258 0022 9161     		str	r1, [r2, #24]
 139:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****     YEAR 	= rtc->year;    
 259              		.loc 1 139 0
 260 0024 0188     		ldrh	r1, [r0]
 261 0026 D161     		str	r1, [r2, #28]
 140:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 141:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****   	CCR |=  CLKEN;				// Habilita o clock do RTC
 262              		.loc 1 141 0
 263 0028 1A68     		ldr	r2, [r3]
 264 002a 42F00102 		orr	r2, r2, #1
 265 002e 1A60     		str	r2, [r3]
 266 0030 7047     		bx	lr
 267              	.L21:
 268 0032 00BF     		.align	2
 269              	.L20:
 270 0034 08400240 		.word	1073889288
 271 0038 20400240 		.word	1073889312
 272              		.cfi_endproc
 273              	.LFE6:
 275              		.section	.text.rtc_GetTime,"ax",%progbits
 276              		.align	1
 277              		.global	rtc_GetTime
 278              		.thumb
 279              		.thumb_func
 281              	rtc_GetTime:
 282              	.LFB7:
 142:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 143:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  	EXIT_CRITICAL();			// Procedimento de saida critica quando usado sistema operacional
 144:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
 145:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 146:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
 147:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Descrição: 	Captura data e hora atual
 148:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Parametros:	Nenhum
 149:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // Retorna:		Time structure with current time counter values:
 150:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //		      		struct {
 151:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int sec;    Second value - [0,59] 
 152:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int min;    Minute value - [0,59]
 153:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int hour;   Hour value - [0,23]
 154:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int day;    Day of the month value - [1,31]
 155:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int month;  Month value - [1,12]
 156:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int year;   Year value - [0,4095]
 157:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int w_day;  Day of week value - [0,6]
 158:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //        				int y_day;  Day of year value - [1,365]
 159:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** //      			} tRTC;
 160:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** // ------------------------------------------------------------------------------------------------
 161:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** bool rtc_GetTime( tRTC *rtc) {
 283              		.loc 1 161 0
 284              		.cfi_startproc
 285              		@ args = 0, pretend = 0, frame = 0
 286              		@ frame_needed = 0, uses_anonymous_args = 0
 287              		@ link register save eliminated.
 288              	.LVL1:
 162:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	u32 d, t;
 163:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 164:uc_libc_dev/_arch/arm_lpc/timer/rtc.c ****  	ENTER_CRITICAL(); // Procedimento de entrada critica quando usado sistema operacional
 165:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	t = CTIME0;
 289              		.loc 1 165 0
 290 0000 0D4B     		ldr	r3, .L23
 166:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	d = CTIME1;
 291              		.loc 1 166 0
 292 0002 0E4A     		ldr	r2, .L23+4
 165:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	d = CTIME1;
 293              		.loc 1 165 0
 294 0004 1B68     		ldr	r3, [r3]
 295              	.LVL2:
 296              		.loc 1 166 0
 297 0006 1268     		ldr	r2, [r2]
 298              	.LVL3:
 167:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 168:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->sec = t & 0x3f;
 299              		.loc 1 168 0
 300 0008 03F03F01 		and	r1, r3, #63
 301 000c C171     		strb	r1, [r0, #7]
 169:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->min = (t >> 8) & 0x3f;
 302              		.loc 1 169 0
 303 000e C3F30521 		ubfx	r1, r3, #8, #6
 304 0012 8171     		strb	r1, [r0, #6]
 170:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->hour = (t >> 16) & 0x1f;
 305              		.loc 1 170 0
 306 0014 C3F30441 		ubfx	r1, r3, #16, #5
 171:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->wday = (t >> 24) & 0x7;
 307              		.loc 1 171 0
 308 0018 C3F30263 		ubfx	r3, r3, #24, #3
 309              	.LVL4:
 310 001c 0371     		strb	r3, [r0, #4]
 172:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->mday = d & 0x1f;
 311              		.loc 1 172 0
 312 001e 02F01F03 		and	r3, r2, #31
 313 0022 C370     		strb	r3, [r0, #3]
 173:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->month = (d >> 8) & 0xf;
 314              		.loc 1 173 0
 315 0024 C2F30323 		ubfx	r3, r2, #8, #4
 174:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->year = (d >> 16) & 0xfff;
 316              		.loc 1 174 0
 317 0028 C2F30B42 		ubfx	r2, r2, #16, #12
 318              	.LVL5:
 170:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->wday = (t >> 24) & 0x7;
 319              		.loc 1 170 0
 320 002c 4171     		strb	r1, [r0, #5]
 173:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	rtc->month = (d >> 8) & 0xf;
 321              		.loc 1 173 0
 322 002e 8370     		strb	r3, [r0, #2]
 323              		.loc 1 174 0
 324 0030 0280     		strh	r2, [r0]	@ movhi
 175:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	EXIT_CRITICAL(); 		// Procedimento de saida critica quando usado sistema operacional
 176:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 
 177:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** 	return pdTRUE;
 178:uc_libc_dev/_arch/arm_lpc/timer/rtc.c **** }
 325              		.loc 1 178 0
 326 0032 0120     		movs	r0, #1
 327              	.LVL6:
 328 0034 7047     		bx	lr
 329              	.L24:
 330 0036 00BF     		.align	2
 331              	.L23:
 332 0038 14400240 		.word	1073889300
 333 003c 18400240 		.word	1073889304
 334              		.cfi_endproc
 335              	.LFE7:
 337              		.text
 338              	.Letext0:
 339              		.file 2 "uc_libc_dev/_libdef/uc_libdefs.h"
 340              		.file 3 "uc_libc_dev/_arch/arm_lpc/timer/rtc.h"
DEFINED SYMBOLS
                            *ABS*:00000000 rtc.c
D:\_temp\_windows\cczRQCgv.s:20     .text.rtc_Init:00000000 $t
D:\_temp\_windows\cczRQCgv.s:25     .text.rtc_Init:00000000 rtc_Init
D:\_temp\_windows\cczRQCgv.s:68     .text.rtc_Init:0000002c $d
D:\_temp\_windows\cczRQCgv.s:76     .text.rtc_Start:00000000 $t
D:\_temp\_windows\cczRQCgv.s:81     .text.rtc_Start:00000000 rtc_Start
D:\_temp\_windows\cczRQCgv.s:101    .text.rtc_Start:00000014 $d
D:\_temp\_windows\cczRQCgv.s:106    .text.rtc_Stop:00000000 $t
D:\_temp\_windows\cczRQCgv.s:111    .text.rtc_Stop:00000000 rtc_Stop
D:\_temp\_windows\cczRQCgv.s:127    .text.rtc_Stop:0000000c $d
D:\_temp\_windows\cczRQCgv.s:132    .text.rtc_ResetCTC:00000000 $t
D:\_temp\_windows\cczRQCgv.s:137    .text.rtc_ResetCTC:00000000 rtc_ResetCTC
D:\_temp\_windows\cczRQCgv.s:153    .text.rtc_ResetCTC:0000000c $d
D:\_temp\_windows\cczRQCgv.s:158    .text.rtc_Sleep:00000000 $t
D:\_temp\_windows\cczRQCgv.s:163    .text.rtc_Sleep:00000000 rtc_Sleep
D:\_temp\_windows\cczRQCgv.s:185    .text.rtc_Sleep:0000001c $d
D:\_temp\_windows\cczRQCgv.s:190    .text.rtc_Wake:00000000 $t
D:\_temp\_windows\cczRQCgv.s:195    .text.rtc_Wake:00000000 rtc_Wake
D:\_temp\_windows\cczRQCgv.s:217    .text.rtc_Wake:0000001c $d
D:\_temp\_windows\cczRQCgv.s:222    .text.rtc_SetTime:00000000 $t
D:\_temp\_windows\cczRQCgv.s:227    .text.rtc_SetTime:00000000 rtc_SetTime
D:\_temp\_windows\cczRQCgv.s:270    .text.rtc_SetTime:00000034 $d
D:\_temp\_windows\cczRQCgv.s:276    .text.rtc_GetTime:00000000 $t
D:\_temp\_windows\cczRQCgv.s:281    .text.rtc_GetTime:00000000 rtc_GetTime
D:\_temp\_windows\cczRQCgv.s:332    .text.rtc_GetTime:00000038 $d
                     .debug_frame:00000010 $d

NO UNDEFINED SYMBOLS
